
namespace gen {

	template <typename S, typename FunctorT>
    template <typename InfoT>
	void
	wrapper_generator<S,FunctorT>::generate(InfoT & info) const
	{
		functor.do_generation(this->subject(), info);
	}

    template <typename DerivedT>
	template <class T>
	inline wrapper_generator< DerivedT, T >
	generator<DerivedT>::operator[](functor_base<T> const& f) const
    {
        return wrapper_generator< DerivedT, T >(derived(), f.derived());
    }

};

